package com.milo.java7.net.tcp;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

/**
 * @author: Milogenius
 * @create: 2019-09-20 10:00
 * @description: TCP通行客户端:向服务器发送请求
 * <p>
 * 1.表示客户端的类{@link java.net.Socket}:此类实现了客户端套接字[包含ip地址和端口号的网络单位]
 *
 * 2.构造方法
 * Socket(String host, int port) 创建一个套接字并将其链接到指定主机的指定端口号
 *
 * 3.成员方法
 * getInputStream()  返回此套接字输入流
 * getOutputStream()  返回此套接字的输出流
 * close() 关闭此套接字
 *
 * </p>
 **/
public class TCPClient {

    public static void main(String[] args) throws IOException {
        //1.创建一个客户端对象Socket,构造方法绑定服务器ip和端口号
        Socket socket = new Socket("127.0.0.1",8888);
        //2.使用socket对象获取网络字节输出流OutputStream对象
        OutputStream os = socket.getOutputStream();
        //3.使用os对象向服务器发送数据
        os.write("你好,服务器".getBytes());
        //4.使用socket对象获取网络字节输入流
        InputStream is = socket.getInputStream();
        //5.使用InputStream对象的方法read,读取客户端发送的数据
        byte[] bytes = new byte[1024];
        int len = is.read(bytes);
        System.out.println(new String(bytes,0,len));
        //6.释放资源(socket)
        socket.close();
    }
}
